package com.cskaoyan.javase.oop.access13.basic.notice;

/**
 * @description: 我们为什么使用访问权限修饰符
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 最大作用：
 * 告诉代码的使用者，哪些地方不要触碰，或者说告诉他们该用什么
 *   - 工具类，我们不希望别人创建对象，所以私有化构造器
 *      工具类，我们希望大家用工具类直接干脆 类名点去调用方法就行了，这种情况下，我们不希望创建对象
 *   - 方法的中间方法，我们也不希望别人使用，私有化
 *   - 虽然不是工具类，但是不希望直接被创建对象，而是通过别的类的方法来创建对象
 *     - 私有化构造器，在别的类中给出public方法创建对象
 *     - 这种模式就是大名鼎鼎的“工厂设计模式”，这个创建对象的类，就是对象工厂
 * - 对于代码的书写者而言，隐藏代码的具体实现细节，可以很方便的修改代码实现
 *      就是你在家当中，你穿不穿衣服，还是穿男的衣服还是女的衣服
 *      这个时候没有人会关心了
 *      别人只关心代码的实现效果，只关心你在外面穿的漂不漂亮
 *
 */
//学生对象工厂，该工厂专门生产学生对象
public class StudentFactory {
    private Student studentCreator(){
        //后面有一节知识叫做反射，反射可以打破封装性，来使用私有的构造方法
        //Student s = new Student();
        //在这里就可以对student做一些操作
        return null;
    }
}

class Student{
    //私有化构造方法，断绝了在外部直接创建对象的可能
    private Student(){}
}
